﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;


public partial class Admin_CommonNewsEdit : System.Web.UI.Page
{
    public int News_id;
    protected void Page_Load(object sender, EventArgs e)
    {
//         if (IsPostBack)
//         {
//             if (Session["OperationType"].ToString().Equals("Edit"))
//             {
//                 News_id = Convert.ToInt32(Session["News_id"]);
//             }
//             return;
//         }
        if (Session["admin"] == null)
        {
            Response.Redirect("../Default.aspx");
        }
        else
        {
            if ("9" == Session["InitType"].ToString())
            {
                DropDownListCatalog.Enabled = true;
                DropDownListCatalog.Visible = true;
                CatalogLabel.Visible = true;
            }
            List.Text = Session["List"].ToString();
            News_Edit.Text = Session["NewsType"].ToString();
            if (Session["OperationType"].ToString().Equals("New"))
            {
                if (0 == (int)Session["GroupID"])
                {
                    PublishLabel.Visible = false;
                    cbPublish.Visible = false;
                }
            }
            else if (Session["OperationType"].ToString().Equals("Edit"))
            {
                News_id = Convert.ToInt32(Session["News_id"]);
                NewsDataClassesDataContext dc = new NewsDataClassesDataContext();
                var News = from news in dc.News
                           where news.News_id.Equals(News_id)
                           select new
                           {
                               标题 = news.Title,
                               内容 = news.Content,
                               发布 = news.isPublished
                           };

                foreach (var news in News)
                {
                    content.Value = Convert.ToString(news.内容);
                    title.Value = Convert.ToString(news.标题);
                    if (news.发布 == 1) cbPublish.Checked = true;

                }
                if (0 == (int)Session["GroupID"])
                {
                    PublishLabel.Visible = false;
                    cbPublish.Visible = false;
                }
                dc.Dispose();
            }
        }
    }

    protected void Submit_Button_Click(object sender, EventArgs e)
    {
        string tableTitle = "ctl00$ContentPlaceHolder$title";
        string tableContent = "ctl00$ContentPlaceHolder$content";
        string tablePublish = "ctl00$ContentPlaceHolder$cbPublish"; 
        {
        }
        if (0 == (int)Session["GroupID"])
        {
            PublishLabel.Visible = false;
            cbPublish.Visible = false;
        }
        if (Session["OperationType"].ToString().Equals("New"))
        {
            int catalog_id =Convert.ToInt32(Session["NewsCatalogID"].ToString());
            int news_id = 0;

             NewsDataClassesDataContext dc = new NewsDataClassesDataContext();
//             var Catalog = from catalog in dc.Catalogs
//                           where catalog.Catalog_id.Equals(newscatalogID)
//                           select catalog;
//             foreach (var catalog in Catalog)
//             {
//                 catalog_id = catalog.Catalog_id;
//             }


            News news = new News();
            news.Time = DateTime.Now;
            news.Title = Request.Form[tableTitle];
            news.Content = Request.Form[tableContent];
            news.Editor = (int)Session["UserID"];
            if (Request.Form[tablePublish] != null) { news.isPublished = 1; news.Checker = (int)Session["UserID"]; }
            else { news.isPublished = 0; news.Checker = 0; }
            try
            {
                SQL.SQLHelper.Insert(news);
            }
            catch (Exception ex)
            {
            }

            var News = from pNews in dc.News
                       where pNews.Title.Equals(Request.Form[tableTitle].ToString())
                       select pNews;
            foreach (var pNews in News)
            {
                news_id = pNews.News_id;
            }
            dc.Dispose();

            NewsToCatalog newsToCatalog = new NewsToCatalog();
            newsToCatalog.News_id = news_id;
            newsToCatalog.Catalog_id = catalog_id;

            try
            {
                SQL.SQLHelper.Insert(newsToCatalog);
            }
            catch (Exception ex)
            {
            }

            title.Value = Request.Form[tableTitle];
            content.Value = Request.Form[tableContent];
            if (Request.Form[tablePublish] != null) cbPublish.Checked = true;
            else cbPublish.Checked = false;
        }
        else if (Session["OperationType"].ToString().Equals("Edit"))
        {
            NewsDataClassesDataContext dc = new NewsDataClassesDataContext();
            var News = from news in dc.News
                       where news.News_id.Equals(News_id)
                       select news;
            foreach (var news in News)
            {
                news.Title = Request.Form[tableTitle];
                news.Content = Request.Form[tableContent];

                if (Request.Form[tablePublish] != null) { 
                    news.isPublished = 1; 
                    if(news.Checker == 0) news.Checker = (int)Session["UserID"]; 
                }
                else { news.isPublished = 0; news.Checker = 0; }
            } 
            dc.SubmitChanges();
            if (Session["InitType"].ToString().Equals("9"))
            {
                var NewsTocatalogs = from newstocatalogs in dc.NewsToCatalogs
                                     where newstocatalogs.News_id.Equals(News_id)
                                     select newstocatalogs;
                try
                {
                    dc.NewsToCatalogs.DeleteAllOnSubmit(NewsTocatalogs);
                    dc.SubmitChanges();
                }
                catch (Exception ex)
                {
                }
                dc.Dispose();

                NewsToCatalog newsToCatalog = new NewsToCatalog();
                newsToCatalog.News_id = News_id;
                newsToCatalog.Catalog_id = Convert.ToInt32(DropDownListCatalog.SelectedValue);
                try
                {
                    SQL.SQLHelper.Insert(newsToCatalog);
                }
                catch (Exception ex)
                {
                }
            }
            title.Value = Request.Form[tableTitle];
            content.Value = Request.Form[tableContent];
            if (Request.Form[tablePublish] != null) cbPublish.Checked = true;
            else cbPublish.Checked = false;
        }
        Response.Redirect("../Admin/AdminHome.aspx");
    }
    protected void Return_Button_Click(object sender, EventArgs e)
    {
        this.RegisterClientScriptBlock("E", "<script language=javascript>history.go(-2);</script>");
    }
}
